#include<iostream>
using namespace std;
const int N=1e4;
int a[N],b[N];
int n,k;
int ans[N],maxx;
void search(int l1,int r1,int l2,int r2,int u)
{
	if(l1>r1)
	return ;
	int mid=l2;
	int root=a[r1];
	while(b[mid]!=root)
	mid++;
	maxx=max(maxx,u);
	ans[u]=b[mid];
	int cnt=mid-l2;
	search(l1,l1+cnt-1,l2,mid-1,u*2);
	search(l1+cnt,r1-1,mid+1,r2,u*2+1);
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	cin>>a[i];
	for(int i=1;i<=n;i++)
	cin>>b[i];
	search(1,n,1,n,1);
	for(int i=1;i<maxx;i++)
	{
		if(ans[i])
	    cout<<ans[i]<<' ';
	}
	cout<<ans[maxx]<<endl;
	return 0;
}
